/*Clase que permite leer un archivo de texto*/

//Importamos clases a usar
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.File;
 import java.util.*;
import java.io.FileWriter;
public class Leer
{
public static void main(String arg[])
{
	
	//Un texto cualquiera guardado en una variable
	
Random ram= new Random();
int dato;
	try
	{
	//Crear un objeto File se encarga de crear o abrir acceso a un archivo que se especifica en su constructor
	File archivo=new File("datosor.txt");

	//Crear objeto FileWriter que sera el que nos ayude a escribir sobre archivo
	FileWriter escribir=new FileWriter(archivo,true);

	//Escribimos en el archivo con el metodo write 
	for(int i=0;i<500;i++)
     {
			dato = ram.nextInt(500);
			
			escribir.write("" + dato + "\n");
	}
	

	//Cerramos la conexion
	escribir.close();
	}

	//Si existe un problema al escribir cae aqui
	catch(Exception e)
	{
	System.out.println("Error al escribir");
	}	
	
	
	
	
	
	
	
	
//Creamos un String que va a contener todo el texto del archivo
String texto="";

try
{
//Creamos un archivo FileReader que obtiene lo que tenga el archivo
FileReader lector=new FileReader("datosor.txt");

//El contenido de lector se guarda en un BufferedReader
BufferedReader contenido=new BufferedReader(lector);

//Con el siguiente ciclo extraemos todo el contenido del objeto "contenido" y lo mostramos
int lista [] = new int[500];
	int lista2 [] = new int[200];
	for(int i=0;i<500;i++)
     {
if((texto=contenido.readLine())!=null)
{
	dato = Integer.parseInt(texto);
	lista[i] = dato;
}
}
int e;
	
	System.out.println(" \n insertion Sort  : ***********************************************");
	Ins_sort ob = new Ins_sort();
	ob.ordenarInsercion(lista);
	lista = ob.getlist();
	for(int i = 0; i<500; i++){
		System.out.print(lista[i] + ",");
	}
	 int r;
	 lector=new FileReader("datosor.txt");
	 contenido=new BufferedReader(lector);
	for( r=0;r<500;r++)
      {

if((texto=contenido.readLine())!=null)
{
	dato = Integer.parseInt(texto);
	lista[r] = dato;
}
}
	


	

	System.out.println("\n merge Sort  : **************************************************");
	merge obj = new merge();
	obj.mergeSort(lista, 500);
	
	for(e = 0; e<500; e++){
		System.out.print(lista[e] + ", ");
	}
	lector=new FileReader("datosor.txt");
 	contenido=new BufferedReader(lector);
	for( r=0;r<500;r++)
     {
if((texto=contenido.readLine())!=null)
{
	dato = Integer.parseInt(texto);
	lista[r] = dato;
}
}



	System.out.println(" \n quick Sort  : ");
	quick objt = new quick();
	objt.quickSort(lista, 500);
	;
	for(e = 0; e<500; e++){
		System.out.print(lista[e] + ",");
	}
	lector=new FileReader("datosor.txt");
	contenido=new BufferedReader(lector);
	for( r=0;r<500;r++)
     {
if((texto=contenido.readLine())!=null)
{
	dato = Integer.parseInt(texto);
	lista[r] = dato;
}
}

for(e = 0; e<500; e++){
		System.out.print(lista[e] + ",");
	}

	System.out.println(" \nbubble Sort  : ****************************************************");
	BubbleSort obt = new BubbleSort(lista);
	lista = obt.ordenarLista();
	
	for(e = 0; e<500; e++){
		System.out.print(lista[e] + ",");
	}
	
	
	
	
	
	
	System.out.println(" \n insertion Sort  : ***********************************************");
	;
	ob.ordenarInsercion(lista);
	lista = ob.getlist();
	for(int i = 0; i<500; i++){
		System.out.print(lista[i] + ",");
	}
	
	System.out.println(" \n merge Sort  : **************************************************");
	
	obj.mergeSort(lista, 500);
	
	for(e = 0; e<500; e++){
		System.out.print(lista[e] + ", ");
	}
	
	
	System.out.println(" quick Sort  : ");
	
	objt.quickSort(lista, 500);
	;
	for(e = 0; e<500; e++){
		System.out.print(lista[e] + ",");
	}
	
	
	System.out.println(" \n bubble Sort  : ****************************************************");
	 obt = new BubbleSort(lista);
	lista = obt.ordenarLista();
	
	for(e = 0; e<500; e++){
		System.out.print(lista[e] + ",");
	}
	
	
	
}

//Si se causa un error al leer cae aqui
catch(Exception e)
{
System.out.println("Error al leer");
}
}
}